SELFPHP: Version 5.6.9 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



iOS DevCon 2013



Software Architecture Summit 2013


Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 

CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 


Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.12.2006, 21:37:00
Benutzerbild von Swoosh
Swoosh Swoosh ist offline
Junior Member
 
Registriert seit: Oct 2006
Ort: Crailsheim / SHA / Stuttgart
Alter: 21
Beiträge: 388
Swoosh befindet sich auf einem aufstrebenden Ast
Swoosh eine Nachricht über ICQ schicken Swoosh eine Nachricht über MSN schicken
Voting 2

Hallo

noch ein Problem mit dem Voting!

PHP-Code:
<? error_reporting(E_ALL);

    
$rating $_POST['rating'];
    
$id        $_POST['id'];
    
    if(!
$rating == '' && $id == '') {
    
            echo 
'Das Voting konnte nicht gewertet werden!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }
    else {
    
    if(
$rating == 1) {
            
$result $rating 2;
    }
    if(
$rating == 2) {
            
$result $rating -1;
    }
    if(
$rating == 3) {
            
$result $rating;
    }
    if(
$rating == 4) {
            
$result $rating +1;
    }
    if(
$rating == 5) {
            
$result $rating +2;
    }
    
    
$select_sql "SELECT * FROM `cb_galerie` WHERE `id` LIKE '".$id."'";
    
$select_res mysql_query($select_sql) or die(mysql_error());
    
$select_row mysql_fetch_assoc($select_res);
        
    
$vote  $select_row['votes'];
    
$votes $vote++;
    
    
$sql "UPDATE `cb_galerie` SET rating = '".$result."', votes = '".$votes."' WHERE `id` LIKE '".$id."'";
    
    if(!
$new mysql_query($sql) or die(mysql_error())) {
            echo 
'Danke! Das Voting wurde erfolgreich gezählt!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }
    else {
            echo 
'Das Voting konnte nicht gewertet werden!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }
    
}
?>

Des geht net der schreibt nix in db zeigt aber auch keinen Fehler an?
Woran liegt das?

Danke, Swoosh
Mit Zitat antworten
  #2  
Alt 04.12.2006, 21:52:17
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: Geht Nix

Mal abgesehen davon, dass du nur das letzte Rating zählst, was wird denn ausgegeben?
Dass das Voting erfolgreich gezählt wurde?
Hast du dir mal die SQL-Befehle ausgeben lassen?
Bis wohin läuft das Script?
Mit Zitat antworten
  #3  
Alt 05.12.2006, 06:29:51
ascer ascer ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 137
ascer befindet sich auf einem aufstrebenden Ast
AW: Geht Nix

Ich bin zwar auch nur ein ziemlicher anfänger aber so ins Auge gestochen sind mir folgende Sachen:

<? error_reporting(E_ALL); <---- vielleicht kenn ich das nicht anders, aber musses nicht mit <?php anfangen??

$rating = $_POST['rating']; <----- ehm...ja...rating nehm ich doch mal an soll der durchschnitt sein, von allen leuten die gevotet haben der durchschnitt und nicht der POST von dem letzten User...dann ist der Lösungansatz doch schonma ganz falsch?!

$id = $_POST['id'];

if(!$rating == '' && $id == '') { <------ !$rating == '' ????? meiner Erfahung nach kannste nur einen Vergleich zur Zeit machen, also entweder !$rating (obs $rating gibt) oder $rating == '' mag aber sein, dass das auch nur wieder mein beschränktes Anfängerwissen diktiert^^

echo 'Das Voting konnte nicht gewertet werden!';
echo '<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
}
else {

if($rating == 1) {
$result = $rating - 2;
}
if($rating == 2) {
$result = $rating -1;
}
if($rating == 3) {
$result = $rating;
}
if($rating == 4) {
$result = $rating +1;
}
if($rating == 5) {
$result = $rating +2;
} <-------------------------------- wieder dasselbe, du willst doch nicht irgendwann 1002 oder so rausgebkommen, wenn alle +2 voten?! nen rating sollte doch schon der durchschnitt sein, bei dir z.B. bei ner Skala von 0 - 4 Punkten ( also 0 Punkte, 1 Punkt, 2, 3 oder 4, der der User votet...oder was immer auch gevotet wird )

$select_sql = "SELECT * FROM `cb_galerie` WHERE `id` LIKE '".$id."'"; <------ hab ich auch mal so gemacht...gab bei mir aber ab und zu ebenfalls Komplikationen, versuchs sonst mal mit der Syntax ( so mach ich's auch immer):
$select_sql = mysql_query(" SELECT * FROM cb_galerie WHERE id='$id' ");

$select_res = mysql_query($select_sql) or die(mysql_error());
$select_row = mysql_fetch_assoc($select_res);

$vote = $select_row['votes'];
$votes = $vote++;

$sql = "UPDATE `cb_galerie` SET rating = '".$result."', votes = '".$votes."' WHERE `id` LIKE '".$id."'"; <------ würd ich sonst auch mal so probieren wie ich's immer mache, weil es bei mir mit dem von dir oben auch hier ab und zu mal probs gab...seit dem mach ichs immer so:
$sql = mysql_query( "UPDATE `cb_galerie` SET `rating`='$result', `votes`='$votes' WHERE `cb_galerie`.`id`='$id' ");
so funzt es bei mir immer...

if(!$new = mysql_query($sql) or die(mysql_error())) {
echo 'Danke! Das Voting wurde erfolgreich gezählt!';
echo '<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
}
else {
echo 'Das Voting konnte nicht gewertet werden!';
echo '<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
}

}
?>


das wäre so was mir daran auffällt....aber wie gesagt, mag sein das mein Anfängerwissen dafür einfach noch zu klein ist und ich einiges korrigiert hab, was richtig ist / war...aber vielleicht hilft dir das ja auch....

gruß
Mit Zitat antworten
  #4  
Alt 05.12.2006, 08:21:03
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: Geht Nix

Zitat:
<---- vielleicht kenn ich das nicht anders, aber musses nicht mit <?php anfangen??
Nö <? ist ein short open tag http://de3.php.net/manual/de/ini.cor...short-open-tag

Zitat:
<------ !$rating == '' ????? meiner Erfahung nach kannste nur einen Vergleich zur Zeit machen, also entweder !$rating (obs $rating gibt) oder $rating == '' mag aber sein, dass das auch nur wieder mein beschränktes Anfängerwissen diktiert^^
Ohh, da will ich aber kein Script von dir sehen, dürften dann ja endlose if-kaskaden sein
http://ca.php.net/manual/de/language...rs.logical.php

Zitat:
<------ hab ich auch mal so gemacht...gab bei mir aber ab und zu ebenfalls Komplikationen, versuchs sonst mal mit der Syntax ( so mach ich's auch immer):
$select_sql = mysql_query(" SELECT * FROM cb_galerie WHERE id='$id' ");
Prächtig.. Stringverkettung bringt weniger Probleme mit sich als die Variablenersetzung, mysql_query ist an der Stelle falsch und die Backticks (`) sind auch besser wenn sie da sind. http://www.mysql.org/doc/refman/5.1/de/legal-names.html

Zitat:
<-------------------------------- wieder dasselbe, du willst doch nicht irgendwann 1002 oder so rausgebkommen, wenn alle +2 voten?! nen rating sollte doch schon der durchschnitt sein, bei dir z.B. bei ner Skala von 0 - 4 Punkten ( also 0 Punkte, 1 Punkt, 2, 3 oder 4, der der User votet...oder was immer auch gevotet wird )
$result wird nirgends vorher definiert, demnach hat es einen Wertebereich von -1 bis +7, was auch immer das für einen Sinn hat, das die Logik kaputt ist hab ich ja schon angemerkt..
Mit Zitat antworten
  #5  
Alt 05.12.2006, 17:48:46
The One The One ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 52
The One befindet sich auf einem aufstrebenden Ast
AW: Voting 2

BenniG. nichts gegen dich oder so, aber so wie du gegen die Punkte von ascer sprichst hört sich das irgendwie angreifend an... er hat selbst dazu geschrieben das er noch ein anfänger ist, da kannst du auch sagen "nein dies geht auch so, blabla" aber nicht "prächtig...."
sollte jetzt kein angriff auf dich sein, nur ein hinweis


if(!$rating == '' && $id == '') {

ich weiß jetzt nicht genau wie dein script funktionieren soll aber müssen nicht $rating UND $id ausgefüllt sein? falls ja mach lieber dies abfrage:

if(!$rating == '' || $id == '') {


außerdem bei dieser zeile:
if(!$new = mysql_query($sql) or die(mysql_error())) {
wo steht was $new ist und für was steht das "!"?
Mit Zitat antworten
  #6  
Alt 05.12.2006, 17:57:14
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: Voting 2

Sorry, aber ich halte es da mit Dieter Nuhr, welches Zitat ich konkret meine sag ich mal nicht *g*
Was Swoosh hier erreichen will hat er mit keinem Wort erwähnt, inzwischen übrigens immernochnicht.. Von daher ist alles reine Spekulation.. Die wahllos verstreuten ! sind mir auch aufgefallen, aber scheinbar stehen einige Leute aufs negieren ;)

Übrigens: BenniG != Threadersteller ;)
Mit Zitat antworten
  #7  
Alt 05.12.2006, 18:05:27
The One The One ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 52
The One befindet sich auf einem aufstrebenden Ast
AW: Voting 2

ich weiß das du nicht der threadersteller bist^^ hab mich etwas unklar ausgedrückt...
Mit Zitat antworten
  #8  
Alt 05.12.2006, 18:09:17
Benutzerbild von Swoosh
Swoosh Swoosh ist offline
Junior Member
 
Registriert seit: Oct 2006
Ort: Crailsheim / SHA / Stuttgart
Alter: 21
Beiträge: 388
Swoosh befindet sich auf einem aufstrebenden Ast
Swoosh eine Nachricht über ICQ schicken Swoosh eine Nachricht über MSN schicken
AW: Voting 2

Wie was?

1. $_POST['rating'], ist wieviel Punkte die Leute Vergeben!

Und das wird difiniert im Form Feld.

Das Problem muss hier liegen!

PHP-Code:
    $select_sql "SELECT * FROM `cb_galerie` WHERE `id` LIKE '".$id."'";
    
$select_res mysql_query($select_sql) or die(mysql_error());
    
$select_row mysql_fetch_assoc($select_res);
        
    
$vote  $select_row['votes'];
    
$votes $vote++; 
Den er gibt mir auch bei $votes nicht aus?
Das ist ja das was ich nicht versteh und einen fehler gibt er mir auch nicht aus mit mysql_error();
Es kommt nur ein weisser Bildschrim das ist alles.

Geändert von Swoosh (05.12.2006 um 18:10:33 Uhr)
Mit Zitat antworten
  #9  
Alt 05.12.2006, 18:35:11
The One The One ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 52
The One befindet sich auf einem aufstrebenden Ast
AW: Voting 2

für was steht $id?

bei beitrag 1 hast du geschrieben das der änderungen nicht GESPEICHERT werden, in post 8 das sie nicht abgefragt werden... was jetzt?

probier mal das script hier, hab bissl verändert:

PHP-Code:
<? error_reporting(E_ALL);

    
$rating $_POST['rating'];
    
$id $_POST['id'];

    if(empty(
$rating) || empty($id)) {
     echo 
'Das Voting konnte nicht gewertet werden!';
     echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }

    else {
     if(
$rating == 1) {
            
$result $rating 2;
     }
     if(
$rating == 2) {
            
$result $rating -1;
     }
     if(
$rating == 3) {
            
$result $rating;
     }
     if(
$rating == 4) {
            
$result $rating +1;
     }
     if(
$rating == 5) {
            
$result $rating +2;
     }

    
$select_sql "SELECT * FROM `cb_galerie` WHERE `id LIKE '$id'";
    
$select_res mysql_query($select_sql);
    while(
$row mysql_fetch_object($select_res))
    {
    
$vote  $select_row['votes'];
    
$votes $vote++;
    }

    
$sql "UPDATE `cb_galerie` SET rating = '".$result."', votes = '".$votes."' WHERE `id` LIKE '".$id."'";
    
$update mysql_query($sql);
    if(
$update == true) {
            echo 
'Danke! Das Voting wurde erfolgreich gezählt!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }
    else {
            echo 
'Das Voting konnte nicht gewertet werden!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
    }

}
?>
Mit Zitat antworten
  #10  
Alt 05.12.2006, 22:42:44
Benutzerbild von Swoosh
Swoosh Swoosh ist offline
Junior Member
 
Registriert seit: Oct 2006
Ort: Crailsheim / SHA / Stuttgart
Alter: 21
Beiträge: 388
Swoosh befindet sich auf einem aufstrebenden Ast
Swoosh eine Nachricht über ICQ schicken Swoosh eine Nachricht über MSN schicken
AW: Voting 2

So!
Hab den Code komplett überarbeitet und siehe da geht wunderbar!

Falls eine Intresse hat wie der Code aussieht de funktioniert. Hier:
PHP-Code:
<? 

        $rating 
$_POST['rating'];
     
$id $_POST['id'];
    

     if(empty(
$rating) || empty($id)) {
         echo 
'Das Voting konnte nicht gewertet werden!';
         echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
     } else {

        
$sel_sql "SELECT * FROM `cb_galerie` WHERE `id` = '".$id."'";
        
$sel_res mysql_query($sel_sql) or die(mysql_error());
        
$sel_row mysql_fetch_assoc($sel_res);
        
$res_row $sel_row['rating'];
        
         if(
$rating == 1) {
                
$result $res_row 2;
         }
         if(
$rating == 2) {
                
$result $res_row -1;
         }
         if(
$rating == 3) {
                
$result $res_row;
         }
         if(
$rating == 4) {
                
$result $res_row +1;
         }
         if(
$rating == 5) {
                
$result $res_row +2;
         }


        
$azc      $sel_row['votes'];
        
$nzc     $azc 1;
        
        
$new_sql "UPDATE `cb_galerie` SET `rating` = '".$result."', `votes` = '".$nzc."' WHERE `cb_galerie`.`id` = $id";
        
$new_res mysql_query($new_sql);
    
        if(
$new_res == true) { 
            echo 
'Danke! Das Voting wurde erfolgreich gezählt!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>'
        } else {
            echo 
'Das Voting konnte nicht gewertet werden!';
            echo 
'<br><br> <a href="'.$_SERVER['HTTP_REFERER'].'"> Zurück </a>';
        }
    
    }
?>
Danke, an alle!

MfG, Swoosh

edit:

So hat mir jemand ein tipp wie ich eine IP Speere einbauen kann?
Vielleicht auch einen Vorschlage code?
Also er soll nur das Voting für eine bereits gestimmte ip die ip sperren, also so das ich noch bei anderen Videos abstimmen kann!

Danke, Swoosh


Geändert von Swoosh (05.12.2006 um 22:44:45 Uhr) Grund: Text hinzugefügt
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Voting Swoosh PHP Grundlagen 5 04.12.2006 20:40:13
voting skript fiene23 PHP Grundlagen 0 14.02.2006 14:41:08
Personalbit beim GIGA-Award chris47803 Off Topic Area 0 21.09.2005 20:28:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:34:28 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt