php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-01-2008, 08:50
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard Werte von zwei Tabellen!Bitte Hilfe!

Hallo @ all! Ich wusste nicht wie die Beitragseinfuhrung schreiben sollte.

Mein Problem ist folgendes ich bin dabei ein Newssystem mit Kategorien zu schreiben und mache das über zwei verschiedene Tabellen die eine heist

newscat und hat folgenden Feldinhalt
id,catname

Die zweite heist news und hat folgende Feldinhalte
id,catid,author,titel,email,wahl,url,urlname,text,datum


Ich möchte jetzt erreichen das ich über eine angelegte Kategorie den entsprechenden Newsbeitrag aufrufen kann. Wie das in einer Tabelle geht weis ich aber über zwei Tabellen scheiter ich leider.

Hier der Code für die ausgegebenen Kategorien!

PHP-Code:
<?php
$newscat_result 
mysql_query("Select * From $tab_newscat")or die(mysql_error());
    while(
$newscat_row = @mysql_fetch_array($newscat_result)){
        
$newscat_id            =    $newscat_row['id'];
        
$newscat_catname    =    $newscat_row['catname'];
echo
"
<tr>
<td align=\"left\">
&nbsp;&nbsp;<a href=\"show_news.php?id=\">"
.$newscat_catname."-News</a>
</td>
</tr>
"
;
}
?>

Und hier der Code für die newsausgabe!
PHP-Code:
$news_result mysql_query("Select * From $tab_news")or die(mysql_query());
while(
$news_row = @mysql_fetch_array($news_result)){

        
$news_id        =    $news_row['id'];
        
$news_catid        =    $news_row['catid'];
        
$news_author    =    $news_row['author'];
        
$news_titel        =    $news_row['titel'];
        
$news_email        =    $news_row['email'];
        
$news_wahl        =    $news_row['wahl'];
        
$news_url        =    $news_row['url'];
        
$news_urlname    =    $news_row['urlname'];
        
$news_text        =    nl2br($news_row['text']);
        
$news_datum        =    $news_row['datum'];
        
        
$datum=date("d.m.Y H:i",$news_datum);

Die catid wird beim einsenden eines News auch mit eingetragen nur bekomme ich das auslesen nicht hin. Vieleicht möchte mir jemand helfen.

Ich denke das in diesem Link
PHP-Code:
href="show_news.php?id=\">".$newscat_catname."-News</a> 
auf die catid in der newstabelle verwiesen werden muss und dort die where clausel entsprechend geschrieben werden muss,habe es stundenlang probiert ohne erfolg.


MFG der Litter
Mit Zitat antworten
  #2 (permalink)  
Alt 12-01-2008, 13:32
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist eigentlich ein grundlegendes SQL-Problem und das Zauberwort lautet JOINs. Such danach, es gibt auch einen entsprechenden "Wichtig"-Thread.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #3 (permalink)  
Alt 12-01-2008, 14:45
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe jetzt mal gelesen und es so versucht.

Der Link zur show_piccat sieht jetzt so aus
PHP-Code:
<a href="show_thumb.php?id='".$piccat_id."'\">".$piccat_catname."</a> 
Und die Abfrage in der show_thumb sieht so aus
PHP-Code:
<?php
$bild_result 
mysql_query("Select piccat.id,piccat.catname From $tab_piccat
                            LEFT JOIN $tab_bild ON catid"
)or die(mysql_error());
$i=1;
while(
$bild_row = @mysql_fetch_array($bild_result)){
        
        
$bild_id        =    $bild_row['id'];
        
$bild_catid        =    $bild_row['catid'];
        
$bild_bild        =    $bild_row['bild'];
        
$bild_view        =    $bild_row['view'];
}
Das ERgebnis davon ist,das es keine mysql Fehlermeldung gibt,er mir auch ein Ergebnis liefert. Nur eigentlich sollen in der Kategorie Personal zum Beispiel drei Bilder angezeigt werden. Ich habe noch zwei andere Kategorien angelegt und es zeigt egal welche Kategorie ich anklicke immer drei Reihen mit 9 Bildern an.
Bzw nur drei Reihen und das Bild gar nicht.
Mit Zitat antworten
  #4 (permalink)  
Alt 12-01-2008, 14:54
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gib doch erstmal die Query aus um zu überprüfen, ob da auch das drin steht, was du erwartest.

Gib auch mal nen Link, vielleicht kann man dann deine unverständliche Erklärung am Ende nachvollziehen.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #5 (permalink)  
Alt 12-01-2008, 15:56
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also das hier gibt mir der query aus

Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catidSelect piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catidSelect piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catidSelect piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid Select piccat.id,piccat.catname From piccat LEFT JOIN bild ON catid


Ich kann keinen Link geben da ich die Seite noch offline betreibe.

Ich versuche es noch ma zu erklären.

Ich habe eine Datei die heist show_piccat und dort werden die Kategorien ausgegeben die als Links dargestellt werden.

<a href="show_pic.php">Kategoriename</a>
was hinter das php im Link kommt ist mein erstes Problem

Dann habe ich eine Datei Namens show_thumb,dort werden die Bilder ausgegeben. In die Tabelle der bilder (bild) wird auch die catid geschrieben,also die id aus der Tabelle piccat.

Nun will ich das wenn ich eine Kategorie anklicke die richtigen Bilder dazu erscheinen in der show_pic. Und das bekomme ich nicht hin.

Jetzt besser? Ich hoffe.
Mit Zitat antworten
  #6 (permalink)  
Alt 12-01-2008, 16:18
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das ist nicht eine Query sondern gleich ein halbes Dutzend.

<a href="show_pic.php?cat_id=<cat_id>">...</a>
Ist es das, was du suchst?
Mit Zitat antworten
  #7 (permalink)  
Alt 12-01-2008, 16:41
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich weis der query ist nicht das was es sein sollte,das ist ja mein Problem.

Mein Link sieht so aus und verweist auch richtig da hin.D

<a href=\"show_thumb.php?id='".$piccat_row['id']."'\">".$piccat_catname."</a>

as Problem ist das richtige anzeigen,sprich ich habe in der Select Anweisung mit dem left join was falsch.

Hier der Select Code noch mal

PHP-Code:
$bild_result mysql_query("Select piccat.id,piccat.catname From $tab_piccat
                            LEFT JOIN $tab_bild ON catid"
)or die(mysql_error());

while(
$bild_row = @mysql_fetch_array($bild_result)){
        
        
$bild_id        =    $bild_row['id'];
        
$bild_catid        =    $bild_row['catid'];
        
$bild_bild        =    $bild_row['bild'];
        
$bild_view        =    $bild_row['view'];

Mit Zitat antworten
  #8 (permalink)  
Alt 12-01-2008, 16:53
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum führst/gibst du die Query mehrfach aus?
Wozu übergibst du in der URL einen Parameter, wenn du diesen nicht verwendest?
Wie viele Zeilen gibt die die genannte Query zurück?
Wie viele Zeilen erwartest du statt dessen?

Deine Frage ist zu generell. Das klingt so, als ob dir jemand den richtigen Code posten soll. Das ist aber nicht unsere aufgabe. (oder was zahlst du? )

Also debuggen, und im klaren werden wo dein Problem eigentlich liegt. Wenn du das vernünftig benennen kannst, dann findest du die Lösung so schnell selbst, dass du unsere Hilfe gar nicht mehr brauchst, oder aber - wenn das Brett vorm Kopf so groß ist - können wir dir sagen wo das Problem liegt.

Aber wie gesagt, aktuell sieht es nach nem, "Ich weiß nichts, macht mal!" aus.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #9 (permalink)  
Alt 13-01-2008, 11:41
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von IchBinIch
Warum führst/gibst du die Query mehrfach aus?
Wozu übergibst du in der URL einen Parameter, wenn du diesen nicht verwendest?
Wie viele Zeilen gibt die die genannte Query zurück?
Wie viele Zeilen erwartest du statt dessen?

Deine Frage ist zu generell. Das klingt so, als ob dir jemand den richtigen Code posten soll. Das ist aber nicht unsere aufgabe. (oder was zahlst du? )

Also debuggen, und im klaren werden wo dein Problem eigentlich liegt. Wenn du das vernünftig benennen kannst, dann findest du die Lösung so schnell selbst, dass du unsere Hilfe gar nicht mehr brauchst, oder aber - wenn das Brett vorm Kopf so groß ist - können wir dir sagen wo das Problem liegt.

Aber wie gesagt, aktuell sieht es nach nem, "Ich weiß nichts, macht mal!" aus.
Ganz so wie du es geschrieben hast ist wirklich nicht,auch wenn so hier aussieht. Also ich habe mich damit beschäftigt und ein wenig rechergiert. Also eine Join Anweisung ist hier im Prinzip überhaupt nicht nötig,weil es sich hier bei den beiden Taben um eine 1:n Beziehung handelt,was heist eine Kategorie in der Tabelle piccat kann viele Datensätze aus der Tabelle bild haben. So nun soviel dazu,das Problem was ich habe und denke das da der Fehler liegt ist,das ich entweder in dem Link der Kategorie der auf die id bzw. catid in der Tabelle bild verweisen soll falsch geschrieben ist oder ich in der wehre clausel in der tabelle bild was falsch geschrieben habe. Hier noch mal die Codes zu übersicht

PHP-Code:
<?php
//Der Code der show_piccat.php wo die Kategorien ausgeldes werden

$piccat_result mysql_query("Select * From $tab_piccat")or die(mysql_error());
    while(
$piccat_row = @mysql_fetch_array($piccat_result)){
        
$piccat_id            =    $piccat_row['id'];
        
$piccat_catname        =    $piccat_row['catname'];
echo
"
<tr>
<td align=\"left\">
&nbsp;&nbsp;

//der Link der auf die catid in der show_thumb verweisen soll
<a href=\"show_thumb.php?id='"
.$piccat_row['id']."'\">".$piccat_catname."</a>
</td>
</tr>
"
;
}
?>


<?php
//das der Code der show_thumb.php wo die Bilder der zugehörigen catid ausgelesen und angezeigt werden sollen

$bild_result mysql_query("Select * From $tab_bild where catid='".$bild_row['catid']."'")or die(mysql_error());

while(
$bild_row = @mysql_fetch_array($bild_result)){
        
        
$bild_id        =    $bild_row['id'];
        
$bild_catid        =    $bild_row['catid'];
        
$bild_bild        =    $bild_row['bild'];
        
$bild_view        =    $bild_row['view'];
}
Und hier irgendwo liegt ein Fehler und ich habe gesucht und versucht ihn zu beheben es leider nicht geschafft,vieleicht ist es jetzt besser erklärt und es kann jemand helfen! Ich finde den Fehler nicht.
Mit Zitat antworten
  #10 (permalink)  
Alt 13-01-2008, 11:49
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$bild_result mysql_query("Select * From $tab_bild where catid='".$bild_row['catid']."'")or die(mysql_error()); 
Wo kommt denn $bild_row hier her? Wenn du da die ID aus der Url eintragen willst musst du natürlich $_GET benutzen. Grundlagen!
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []

Geändert von tontechniker (13-01-2008 um 11:52 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 13-01-2008, 14:11
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von tontechniker
PHP-Code:
$bild_result mysql_query("Select * From $tab_bild where catid='".$bild_row['catid']."'")or die(mysql_error()); 
Wo kommt denn $bild_row hier her? Wenn du da die ID aus der Url eintragen willst musst du natürlich $_GET benutzen. Grundlagen!

Hallo und danke für die Antwort. Habe das mal geändert aber funktionieren tut es immer noch nicht,es bringt mir keine Ausgabe. So sieht jetzt der Query aus.

PHP-Code:
$bild_result mysql_query("Select * From $tab_bild where catid='".$_GET['catid']."'")or die(mysql_error()); 
Ich verzweifel langsam. Schnief
Mit Zitat antworten
  #12 (permalink)  
Alt 13-01-2008, 14:25
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Bau das mal um zu
PHP-Code:
$sql "Select * From $tab_bild where catid='".$_GET['catid']."'";
echo 
$sql;
$bild_result mysql_query($sql)or die(mysql_error()); 
Und in die erste Zeile deines Scripts schreib mal bitte
PHP-Code:
error_reporting(E_ALL); 
Mit Zitat antworten
  #13 (permalink)  
Alt 13-01-2008, 15:00
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von onemorenerd
Bau das mal um zu
PHP-Code:
$sql "Select * From $tab_bild where catid='".$_GET['catid']."'";
echo 
$sql;
$bild_result mysql_query($sql)or die(mysql_error()); 
Und in die erste Zeile deines Scripts schreib mal bitte
PHP-Code:
error_reporting(E_ALL); 
Also bei der Ausgabe von $sql bringt er mir das hier Select * From bild where catid=''.
Daraus lese ich das er keine ID übergibt bzw lesen kann. Das error_reporting(E_ALL); habe ich in meiner kopf.php die überall eingebunden wird. ich bekomme auser Notice Sachen keine Fehler meldung
Mit Zitat antworten
  #14 (permalink)  
Alt 13-01-2008, 15:08
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von litterauspirna
Also bei der Ausgabe von $sql bringt er mir das hier Select * From bild where catid=''.
Daraus lese ich das er keine ID übergibt bzw lesen kann.
Du übergibst einen Parameter namens id und willst auf einen namens catid zugreifen.
Mit Zitat antworten
  #15 (permalink)  
Alt 13-01-2008, 17:13
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also es ist vollbracht ich ahbe den Fehler gefunden. Und der war folgender in dem Link hier.

PHP-Code:
//so war der Link erst

echo"<a href=\"show_thumb.php?id='".$piccat_row['id']."'\">".$piccat_catname."</a>";

//und so ist er gändert

echo"<a href=\"show_thumb.php?catid=".$piccat_row['id']."\">".$piccat_catname."</a>"
Die Fehler waren die falsche Parameter übergabe und die zwei Kleinen Hochkommas. Nun geht es. Aber trotzdem vielen Dank allen hier für die Mühe der Unterstützung
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:07 Uhr.